import request from '@/config/axios'

// OAuth2 客户端 VO
export interface OAuth2ClientVO {
  id: number // 编号
  clientId: string // 客户端编号
  secret: string // 客户端密钥
  name: string // 应用名
  logo: string // 应用图标
  description: string // 应用描述
  status: number // 状态
  accessTokenValiditySeconds: number // 访问令牌的有效期
  refreshTokenValiditySeconds: number // 刷新令牌的有效期
  tokenRefreshSessionSeconds: number // 令牌过期后刷新时间限制
  multipleToken: boolean // 多终端同时登录
  redirectUris: string // 可重定向的 URI 地址
  authorizedGrantTypes: string // 授权类型
  scopes: string // 授权范围
  autoApproveScopes: string // 自动通过的授权范围
  authorities: string // 权限
  resourceIds: string // 资源
  additionalInformation: string // 附加信息
}


// OAuth2 客户端 API
export const OAuth2ClientApi = {
  // 获取OAuth2 客户端分页
  getOAuth2ClientPage: async (params: PageParam) => {
    return await request.get({ url: `/system/oauth2-client/page`, params })
  },

  // 获取OAuth2 客户端详情
  getOAuth2Client: async (id: number) => {
    return await request.get({ url: `/system/oauth2-client/get`, params: { id } })
  },

  // 新增OAuth2 客户端
  createOAuth2Client: async (data: OAuth2ClientVO) => {
    return await request.post({ url: `/system/oauth2-client/create`, data })
  },

  // 修改OAuth2 客户端
  updateOAuth2Client: async (data: OAuth2ClientVO) => {
    return await request.post({ url: `/system/oauth2-client/update`, data })
  },

  // 删除OAuth2 客户端
  deleteOAuth2Client: async (id: number) => {
    return await request.delete({ url: `/system/oauth2-client/delete`, params: { id } })
  },

}
